<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>24点自动出题</title>
    <style type="text/css">
        table {
            font-size: 18px;
            text-align: center;
            margin-left: auto;
            margin-right: auto;
            line-height: 120%;
        }

        div {
            text-align: center;
        }

        td {
            height: 30px;
        }

        #title {
            font-size: 24px;
        }

        .num {
            width: 45px;
        }

        .timu {
            width: 95px;
        }

        .daan {
            width: 170px;
        }
    </style>
    <script type="text/javascript">
        "use strict";
        //timu1是10以内的题目,timu2是10以上,timu3是全部题目,timu4是生成的题目,timu5是把题目中插入逗号便于阅读
        var timu1 = ["1118", "1126", "1127", "1128", "1129", "11210", "1134", "1135", "1136", "1137", "1138", "1139",
            "11310", "1144", "1145", "1146", "1147", "1148", "1149", "11410", "1155", "1156", "1157", "1158",
            "1166", "1168", "1169", "11710", "1188", "1224", "1225", "1226", "1227", "1228", "1229", "12210",
            "1233", "1234", "1235", "1236", "1237", "1238", "1239", "12310", "1244", "1245", "1246", "1247", "1248",
            "1249", "12410", "1255", "1256", "1257", "1258", "1259", "12510", "1266", "1267", "1268", "1269",
            "12610", "1277", "1278", "1279", "12710", "1288", "1289", "12810", "1333", "1334", "1335", "1336",
            "1337", "1338", "1339", "13310", "1344", "1345", "1347", "1348", "1349", "13410", "1356", "1357",
            "1358", "1359", "13510", "1366", "1367", "1368", "1369", "13610", "1377", "1378", "1379", "13710",
            "1388", "1389", "13810", "1399", "13910", "131010", "1444", "1445", "1446", "1447", "1448", "1449",
            "14410", "1455", "1457", "1458", "1459", "14510", "1466", "1467", "1468", "1469", "14610", "1477",
            "1478", "1479", "1488", "1489", "14910", "141010", "1556", "1559", "15510", "1566", "1567", "1568",
            "1569", "15610", "1578", "1579", "15710", "1588", "1589", "15810", "1599", "15910", "151010", "1666",
            "1669", "16610", "1679", "16710", "1688", "1689", "16810", "1699", "16910", "1779", "17710", "1788",
            "1789", "17810", "1799", "17910", "1888", "1889", "18810", "2223", "2224", "2225", "2227", "2228",
            "2229", "22210", "2233", "2234", "2235", "2236", "2237", "2238", "2239", "22310", "2244", "2245",
            "2246", "2247", "2248", "2249", "22410", "2255", "2256", "2257", "2258", "2259", "22510", "2266",
            "2267", "2268", "2269", "22610", "2277", "2278", "22710", "2288", "2289", "22810", "22910", "221010",
            "2333", "2335", "2336", "2337", "2338", "2339", "23310", "2344", "2345", "2346", "2347", "2348", "2349",
            "23410", "2355", "2356", "2357", "2358", "2359", "23510", "2366", "2367", "2368", "2369", "23610",
            "2377", "2378", "2379", "23710", "2388", "2389", "23810", "2399", "23910", "231010", "2444", "2445",
            "2446", "2447", "2448", "2449", "24410", "2455", "2456", "2457", "2458", "2459", "24510", "2466",
            "2467", "2468", "2469", "24610", "2477", "2478", "2479", "24710", "2488", "2489", "24810", "2499",
            "24910", "2557", "2558", "2559", "2566", "2567", "2568", "2569", "25610", "2577", "2578", "2579",
            "25710", "2588", "2589", "25810", "25910", "251010", "2666", "2667", "2668", "2669", "26610", "2678",
            "2679", "26710", "2688", "2689", "26810", "26910", "261010", "2778", "2788", "2789", "27910", "271010",
            "2888", "2889", "28810", "2899", "28910", "281010", "291010", "3333", "3334", "3335", "3336", "3337",
            "3338", "3339", "33310", "3344", "3345", "3346", "3347", "3348", "3349", "3355", "3356", "3357", "3358",
            "3359", "33510", "3366", "3367", "3368", "3369", "33610", "3378", "3379", "3389", "33810", "3399",
            "33910", "3444", "3445", "3446", "3447", "3448", "3449", "34410", "3455", "3456", "3457", "3458",
            "34593", "34510", "3466", "3468", "3469", "34610", "3477", "3478", "3479", "34710", "3489", "34810",
            "3499", "341010", "3556", "3557", "3558", "3559", "3566", "3567", "3568", "3569", "35610", "3578",
            "3579", "35710", "3588", "3589", "3599", "35910", "351010", "3666", "3667", "3668", "3669", "36610",
            "3677", "3678", "3679", "36710", "3688", "3689", "36810", "3699", "36910", "361010", "3777", "3778",
            "3779", "37710", "3788", "3789", "3799", "37910", "371010", "3888", "3889", "38810", "3899", "38910",
            "381010", "3999", "39910", "391010", "4444", "4445", "4446", "4447", "4448", "4449", "44410", "4455",
            "4456", "4457", "4458", "4459", "44510", "4468", "4469", "44610", "4478", "4479", "44710", "4488",
            "4489", "44810", "441010", "4555", "4556", "4557", "4558", "4559", "45510", "4566", "4567", "4568",
            "4569", "45610", "4577", "4578", "4579", "45710", "4588", "4589", "45810", "4599", "45910", "451010",
            "4666", "4667", "4668", "4669", "46610", "4677", "4678", "4679", "46710", "4688", "4689", "46810",
            "4699", "46910", "461010", "4777", "4778", "4788", "4789", "47810", "4799", "47910", "471010", "4888",
            "4889", "48810", "4899", "48910", "481010", "49910", "5555", "5556", "5559", "5566", "5567", "5568",
            "5577", "5578", "55710", "5588", "5589", "55810", "5599", "55910", "551010", "5666", "5667", "5668",
            "5669", "56610", "5677", "5678", "5679", "5688", "5689", "56810", "5699", "56910", "561010", "5779",
            "57710", "5788", "5789", "57810", "57910", "571010", "5888", "5889", "58810", "591010", "6666", "6668",
            "6669", "66610", "6679", "66710", "6688", "6689", "66810", "66910", "67710", "6789", "67810", "6799",
            "671010", "6888", "6889", "68810", "6899", "68910", "6101010", "77910", "7889", "78810", "78910",
            "781010", "88810"
        ];
        var timu2 = ["11111", "11112", "11113", "11211", "11212", "11213", "11311", "11312", "11313", "11412", "11612",
            "11913", "111012", "111013", "111111", "111112", "111113", "111212", "111213", "111313", "12212",
            "12212", "12213", "12311", "12312", "12313", "12411", "12412", "12413", "12512", "12513", "12611",
            "12612", "12613", "12711", "12712", "12813", "12911", "12912", "12913", "121011", "121012", "121013",
            "121111", "121112", "121113", "121212", "121213", "121313", "13311", "13312", "13411", "13412", "13413",
            "13511", "13512", "13513", "13611", "13612", "13613", "13712", "13713", "13811", "13812", "13813",
            "13911", "13912", "13913", "131011", "131012", "131111", "131112", "131212", "131213", "131313",
            "14411", "14412", "14511", "14512", "14513", "14611", "14612", "14613", "14711", "14712", "14713",
            "14811", "14812", "14813", "14911", "14912", "14913", "141011", "141212", "15511", "15512", "15513",
            "15611", "15612", "15613", "15711", "15712", "15713", "15811", "15812", "15813", "15911", "15912",
            "15913", "151011", "151012", "151013", "151111", "151112", "151212", "16611", "16612", "16613", "16711",
            "16712", "16811", "16812", "16813", "16912", "16913", "161012", "161013", "161112", "161113", "161212",
            "161213", "17711", "17712", "17811", "17812", "17911", "17912", "17913", "171012", "171013", "171212",
            "171213", "171313", "18811", "18812", "18911", "18912", "18913", "181011", "181012", "181013", "181112",
            "181113", "19912", "191012", "191013", "191111", "191112", "191113", "191212", "1101012", "1101112",
            "1101212", "1101213", "1111112", "1111113", "1111212", "1111213", "1111313", "1121212", "1121213",
            "1121313", "22211", "22212", "22213", "22311", "22312", "22213", "22311", "22312", "22313", "22411",
            "22412", "22413", "22511", "22512", "22611", "22612", "22613", "22712", "22713", "22812", "22911",
            "22912", "221011", "221013", "221112", "221113", "221212", "221213", "23311", "23312", "23313", "23411",
            "23412", "23413", "23511", "23513", "23611", "23612", "23613", "23711", "23712", "23713", "23811",
            "23812", "23813", "23912", "231012", "231013", "231111", "231112", "231113", "231212", "231213",
            "231313", "24411", "24412", "24413", "24511", "24512", "24513", "24611", "24612", "24613", "24711",
            "24712", "24811", "24812", "24813", "24912", "24913", "241011", "241012", "241013", "241111", "241112",
            "241212", "241313", "25511", "25512", "25513", "25611", "25612", "25613", "25711", "25713", "25811",
            "25812", "25813", "25911", "25912", "251011", "251012", "251013", "251112", "251212", "251213", "26611",
            "26612", "26613", "26711", "26712", "26713", "26811", "26812", "26813", "26911", "26912", "261011",
            "261012", "261013", "261112", "261113", "261212", "261213", "27711", "27712", "27713", "27811", "27812",
            "27813", "27911", "27913", "271011", "271012", "271112", "271212", "271213", "28811", "28812", "28813",
            "28911", "28912", "28913", "281011", "281012", "281013", "281111", "281112", "281212", "281213",
            "281313", "29911", "29912", "29913", "291011", "291012", "291013", "291111", "291113", "291213",
            "291313", "2101011", "2101012", "2101013", "2101111", "2101112", "2101113", "2101213", "2111111",
            "2111112", "2111113", "2111212", "2111213", "2111313", "2121212", "2121213", "2121313", "2131313",
            "33311", "33312", "33411", "33412", "33413", "33512", "33513", "33611", "33612", "33613", "33711",
            "33712", "33713", "33812", "33813", "33911", "33912", "33913", "331013", "331112", "331113", "331212",
            "331213", "34411", "34412", "34413", "34511", "34512", "34513", "34611", "34612", "34613", "34711",
            "34712", "34811", "34812", "34813", "34911", "34912", "34913", "341012", "341013", "341112", "341113",
            "341212", "341213", "35511", "35512", "35611", "35613", "35612", "35711", "35712", "35713", "35811",
            "35812", "35813", "35912", "35913", "351011", "351012", "351013", "351111", "351112", "351212",
            "351213", "351313", "36611", "36612", "36613", "36712", "36713", "36812", "36813", "36911", "36912",
            "36913", "361011", "361012", "361111", "361112", "361113", "361212", "361213", "361313", "37712",
            "37713", "37811", "37812", "37813", "37911", "37912", "37913", "371011", "371013", "371111", "371112",
            "371212", "371213", "371313", "38811", "38812", "38911", "38912", "38913", "381011", "381012", "381111",
            "381112", "381212", "381213", "381313", "39911", "39912", "39913", "391011", "391012", "391013",
            "391111", "391112", "391113", "391212", "391213", "391313", "3101012", "3101112", "3101113", "3111112",
            "3111212", "3121212", "3121213", "3121313", "44411", "44412", "44511", "44512", "44513", "44611",
            "44612", "44613", "44712", "44713", "44811", "44812", "44813", "44911", "44912", "441012", "441013",
            "441112", "441113", "441212", "441213", "45611", "45612", "45613", "45711", "45712", "45713", "45811",
            "45812", "45813", "45912", "45913", "451011", "451012", "451013", "451111", "451112", "451113",
            "451212", "451213", "451313", "46612", "46712", "46812", "46813", "46912", "46913", "461011", "461012",
            "461111", "461112", "461212", "461213", "461313", "47711", "47811", "47812", "47813", "47911", "47912",
            "47913", "471011", "471012", "471111", "471112", "471113", "471212", "471213", "471313", "48811",
            "48812", "48813", "48911", "48912", "48913", "481011", "481012", "481111", "481112", "481113", "481212",
            "481213", "481313", "49912", "491011", "491012", "491013", "491111", "491112", "491212", "4101011",
            "4101012", "4101112", "4101113", "4101212", "4101213", "4111213", "4121212", "55512", "55611", "55811",
            "55812", "55813", "55911", "551011", "551013", "551111", "551112", "551113", "551212", "551213",
            "551313", "56612", "56712", "56713", "56812", "56813", "56911", "56912", "56913", "561011", "561013",
            "561111", "561112", "561113", "561212", "561213", "561313", "57911", "57912", "57913", "571011",
            "571012", "571013", "571111", "571113", "571212", "571313", "58813", "58911", "58912", "58913",
            "581011", "581012", "581112", "581113", "581212", "59911", "59912", "591011", "591013", "591113",
            "591212", "591213", "5101011", "5101012", "5101013", "5101111", "5101213", "5101313", "5111212",
            "66611", "66612", "66711", "66712", "66811", "66812", "66813", "66911", "66912", "66913", "661012",
            "661013", "661112", "661113", "661212", "661213", "67711", "67811", "67812", "67912", "671012",
            "671013", "671111", "671112", "671113", "671212", "671213", "68811", "68812", "68911", "68912", "68913",
            "681011", "681012", "681013", "681111", "681112", "681113", "681212", "681313", "69911", "69912",
            "691011", "691012", "691112", "691113", "691212", "691213", "6101013", "6101112", "6101212", "6101213",
            "6111112", "6111212", "6111213", "6121212", "6121213", "6121313", "77712", "77811", "77910", "771013",
            "771112", "771113", "771212", "771213", "78811", "78812", "78813", "78912", "78913", "781011", "781013",
            "781112", "781113", "781212", "781213", "79913", "791011", "791012", "791111", "791112", "791212",
            "791313", "7101011", "7101012", "7101113", "7101212", "7101213", "7121213", "88811", "88812", "88813",
            "88911", "88912", "88913", "881012", "881013", "881112", "881113", "881212", "881213", "89912",
            "891012", "891013", "891111", "891112", "891113", "891212", "891213", "8101012", "8101111", "8101212",
            "8101213", "8101313", "8111212", "99912", "991013", "991112", "991113", "991212", "991213", "9101013",
            "9101112", "9101113", "9101212", "9101213", "9111111", "9111212", "9111212", "9111313", "9121212",
            "10101012", "10101013", "10101112", "10101113", "10101212", "10101213", "10111112", "10111113",
            "10111212", "10111213", "10121212", "10121213", "10121313", "10131313", "11111112", "11111113",
            "11111212", "11111213", "11121212", "11121213", "11121313", "11131313", "12121212", "12121213",
            "12121313", "12131313"
        ];
        var timu3 = timu1.concat(timu2);
        var timu4 = [];
        var timu5 = [];
        //一页生成题目的数量
        var timunum = 40;
        //mylog用于显示调试信息
        var mylog = "";
        //网页load之后，默认radio按钮
        function load() {
            document.getElementById("radiosmall").checked = true;
        }

        function btnok() {

            if (document.getElementById("radiosmall").checked == true) creattimu(timu1);
            if (document.getElementById("radiobig").checked == true) creattimu(timu2);
            if (document.getElementById("radioall").checked == true) creattimu(timu3);
            timu5 = timu4.map(changetimu);
            inputtimu();
        }
        //根据每组字符的长度，判断加逗号的位置
        function changetimu(str) {
            var tempstr = "";
            switch (str.length) {
                case 4:
                    tempstr = str.slice(0, 1) + "," + str.slice(1, 2) + "," + str.slice(2, 3) + "," + str.slice(3);
                    return tempstr;
                case 5:
                    tempstr = str.slice(0, 1) + "," + str.slice(1, 2) + "," + str.slice(2, 3) + "," + str.slice(3);
                    return tempstr;
                case 6:
                    tempstr = str.slice(0, 1) + "," + str.slice(1, 2) + "," + str.slice(2, 4) + "," + str.slice(4);
                    return tempstr;
                case 7:
                    tempstr = str.slice(0, 1) + "," + str.slice(1, 3) + "," + str.slice(3, 5) + "," + str.slice(5);
                    return tempstr;
                case 8:
                    tempstr = str.slice(0, 2) + "," + str.slice(2, 4) + "," + str.slice(4, 6) + "," + str.slice(6);
                    return tempstr;
                default:
                    return str;
            }

        }
        //把生成的题目插入到网页中
        function inputtimu() {
            var i = 0;
            while (i < timu5.length) {
                var tab = document.getElementById("table01");
                var row = tab.insertRow(tab.rows.length);
                var cell1 = row.insertCell(0);
                var cell2 = row.insertCell(1);
                var cell3 = row.insertCell(2);
                var cell4 = row.insertCell(3);
                var cell5 = row.insertCell(4);
                var cell6 = row.insertCell(5);
                //填充奇数题目
                cell1.innerHTML = i + 1;
                cell2.innerHTML = timu5[i];
                i++;
                if (i < timu5.length) {
                    //填充偶数题目
                    cell4.innerHTML = i + 1;
                    cell5.innerHTML = timu5[i];
                    i++;
                }
            }
        }
        //生成题目，
        function creattimu(timu) {
            timu4.length = 0;
            var i = 0;
            var lentimu = timu.length;
            var timuindex = 0;
            while (timu4.length < timunum) {
                i++;
                if (i > 1000) break;
                timuindex = Math.floor(Math.random() * lentimu);
                //检查是否有重复题目
                if (timu4.includes(timu[timuindex]) == false) {
                    timu4.push(timu[timuindex]);
                }

            }
        }
    </script>
</head>

<body onload="load()">
    <div>
        <p id="title">24点计算题</p>
        <input type="radio" name="colors" id="radiosmall">小数字
        <input type="radio" name="colors" id="radiobig">大数字
        <input type="radio" name="colors" id="radioall">全部 <input type="button" onclick="btnok()" value="生成题目">
        <p id="name">姓名：　　　　　班级：　　　　　 计时：　　　　　 </p>
        <table id="table01" border="1" cellspacing="0">
            <tr>
                <td class="num">序号</td>
                <td class="timu">题目</td>
                <td class="daan">答案</td>
                <td class="num">序号</td>
                <td class="timu">题目</td>
                <td class="daan">答案</td>
            </tr>
        </table>
    </div>
</body>

</html>